import { Lesson, LessonChapter, LessonSection } from '../model/lesson';

/**
 * [API] 添加课程接口
 */
export interface ServiceLessonCreateParams {
  /**
   * 课程名称
   */
  name: string;
}

/**
 * [API] 编辑课程接口
 */
export interface ServiceLessonUpdateParams {
  lesson_id: number;
  name: string;
  /** 简介文字 */
  desc?: string;
  /** 简介富文本 */
  richdesc?: string;
  /** 图文富文本 */
  richtext?: string;
  /** 封面图片 */
  pic?: string;
  /** 扩展字段1 */
  extend_1?: string;
  /** 扩展字段2 */
  extend_2?: string;
  /** 扩展字段3 */
  extend_3?: string;
  /** 扩展字段4 */
  extend_4?: string;
  /**
   * 讲师名称
   */
  teacher_name?: string;
  /**
   * 分类标签ids
   * 示例: '100,102,103'
   */
  tag_ids?: string;
  /**
   * 课程类型
   * 1 线上点播
   * 2 线下报名
   */
  type?: 1 | 2;
  /**
   * 获得方式
   * 1 免费学习
   * 2 付费购买 对应付费信息
   * 3 会员免费
   */
  get_type?: 1 | 2 | 3;
  /**
   * 媒体类型
   * 1、视频 2、音频
   */
  media_type?: 1 | 2;
  /**
   * 购买信息
   */
  price?: number;
  /** 销量基数 */
  base_sold_num?: number;
  /** 浏览量基数 */
  base_look_num?: number;
}

/**
 * [API] 获取课程接口
 */
export interface ServiceLessonGetParams {
  // 课程ID 如果传入ID则只返回一个课程
  lesson_id?: number;
  currentPage?: number;
  pageSize?: number;
  /**
   * 是否返回总量统计
   */
  count?: boolean;
  filterForm?: {
    is_display?: 1 | 0;
    /**
     * 分类的 tag_id
     */
    tag_id?: number;
    keywords?: string;
  };
}

export interface ServiceLessonGetResWithCount {
  currentPage: number;
  pageSize: number;
  count: number;
  data: Lesson[];
}

export type ServiceLessonGetResOnlyList = Lesson[];

/**
 * [API] 创建与编辑课时小节接口
 */
export interface ServiceLessonSectionPut {
  /**
   * 如果传入id表示对此条数据进行编辑否则是新增
   */
  section_id?: number;
  name: string;
  /** 课程ID */
  lesson_id: number;
  /** 章节ID */
  chapter_id?: number;
  /** 时长 */
  time_len: number;
  /** 是否可以试看，如果课程是收费的话 默认是0 */
  try_see: 0 | 1;
  /**
   * 试看时长
   * 如果不是免费则可免费看n秒 0 的话则是不限制
   */
  try_see_len?: number;
  /**
   * 媒体类型
   * 1、视频 2、音频
   */
  media_type: 1 | 2;
  /** 视频或音频地址 */
  media_url: string;
  /** 浏览次数基数 */
  base_look_num?: number;
  /**
   * 是否上架展示
   */
  is_display?: 0 | 1;
}

/**
 * [API] 获取课时小节接口
 */
export interface ServiceLessonSectionGetParams {
  // 章节ID 如果传入ID则只返回一个章节
  section_id?: number;
  currentPage?: number;
  pageSize?: number;
  /**
   * 是否返回总量统计
   */
  count?: boolean;
  filterForm?: {
    /**
     * 必填项
     */
    lesson_id: number;
    is_display?: 1 | 0;
  };
}

export interface ServiceLessonSectionGetResWithCount {
  currentPage: number;
  pageSize: number;
  count: number;
  data: LessonSection[];
}

export type ServiceLessonSectionGetResOnlyList = LessonSection[];

/**
 * [API] 创建与编辑章节接口
 */
export interface ServiceLessonChapterPutParams {
  /**
   * 如果传入id表示对此条数据进行编辑否则是新增
   */
  /** 章节ID */
  chapter_id: number;
  /** 章节名称 */
  name: string;
  /** 课程ID 编辑的时候可以不传 */
  lesson_id?: number;
  /** 排序 */
  sort?: number;
  /** 是否上架展示 */
  is_display: 0 | 1;
}

/**
 * [API] 获取课程章节接口
 */
export interface ServiceLessonChapterGetParams {
  // 章节ID 如果传入ID则只返回一个章节
  chapter_id?: number;
  currentPage?: number;
  pageSize?: number;
  /**
   * 是否返回总量统计
   */
  count?: boolean;
  filterForm?: {
    /**
     * 必填项
     */
    lesson_id: number;
    is_display?: 1 | 0;
  };
}

export interface ServiceLessonChapterGetResWithCount {
  currentPage: number;
  pageSize: number;
  count: number;
  data: LessonChapter[];
}

export type ServiceLessonChapterGetResOnlyList = LessonChapter[];
